//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "lapiz.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)
Lapiz::Lapiz(PV *pos, GLfloat dir){
     this->posicion=new PV(pos->getX(),pos->getY(),0);
     this->direccion=dir;
}
void Lapiz::lineTo(PV * p){
        glBegin(GL_LINES);
                glVertex2f(posicion->getX(),posicion->getY());
                glVertex2f(p->getX(),p->getY());
        glEnd();
        delete posicion;
        posicion=new PV(p->getX(),p->getY(),0);

}
void Lapiz::moveTo(PV * p){
        delete posicion;
        posicion=new PV(p->getX(),p->getY(),0);

}
void Lapiz::moveToRel(GLfloat incx, GLfloat incy){
        posicion->setX(posicion->getX()+incx);
        posicion->setY(posicion->getY()+incy);
}
void Lapiz::turnTo(GLfloat ang){
        direccion=ang;

}
void Lapiz::turn(GLfloat ang){
        direccion+=ang;
}
void Lapiz::forward(GLfloat dist,bool contrazo){

        PV * pvieja=new PV(posicion->getX(),posicion->getY(),1);
        posicion->setX(posicion->getX()+dist*cos(direccion));
        posicion->setY(posicion->getY()+dist*sin(direccion));
        if(contrazo){
                glBegin(GL_LINES);
                        glVertex2f(posicion->getX(),posicion->getY());
                        glVertex2f(pvieja->getX(),pvieja->getY());
                glEnd();
        }
        delete pvieja;
}




